iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0

今天繼續昨天的主題-拜占庭容錯協議(Byzantine Fault Tolerance, BFT),但這個協議還只是個概念,並且效率過低,於是在1999年 Miguel Castro、Barbara Liskov提出實用拜占庭容錯(Practical Byzantine Fault Tolerance, PBFT),它提供了一個有效實用的方法改善BFT的缺點,而且PBFT算法採用密碼學的相關技術,以確保訊息的傳遞過程中,無法被篡改和破壞。
下面我們來說明這個協議是怎麼進行的,整體的基本流程為:

  • 首先,通過輪換或隨機算法選出某個節點為主節點,此後只要主節點不切換,則稱為一個視圖(View)。
  • 在某個視圖中,客戶端將請求發送給主節點,主節點負責廣播請求到所有其它副本節點。
  • 所有節點處理完成請求,將處理結果返回給客戶端。客戶端檢查是否收到了至少 F+1 個來自不同節點的相同結果,作為最終結果。

主節點廣播過程包括三個階段的處理:預準備(Pre-Prepare)、準備(Prepare)和提交(Commit),預準備和準備階段確保在同一個視圖內請求發送的順序正確;準備和提交階段則確保在不同視圖之間的確認請求是保序的,具體實現上還包括視圖切換、checkpoint等機制。

參考資料:https://poweichen.gitbook.io/blockchain-guide-zh/distribute_system/bft


上一篇
共識機制 (三)
下一篇
密碼學 (一)
系列文
不能不知的區塊鏈:入門指南30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言